<?php

namespace App\Http\Controllers\Admin;

use App\Http\Model\User;
use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

//require_once app_path().'/Org/code/Code.class.php';
//use  App\Org\code\Code;

use Gregwar\Captcha\CaptchaBuilder;
use Gregwar\Captcha\PhraseBuilder;

use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;
use PhpSpec\Listener\RerunListener;

class LoginController extends Controller
{
    /**
     * 返回登录页面
     * @author xxx
     * @date 2017/8/25 9:51
     * @param
     * @return 返回登录视图
     */
    public function login()
    {
        return view('admin.login');
    }
    //处理提交过来的登录数据
    public function dologin(Request $request)
    {
//       1 获取浏览器提交的数据
        //dd($request->all());
//       echo $request->input('username');
//       echo $request['username'];
//       dd($request->except('_token'));

      $input =  Input::except('_token');

//      2 输入的数据是否符合表单验证规范
//       make方法的三个参数
//       参数1 要参与验证的数据
//       参数2 验证规则
//       参数3  设置错误的提示信息

        $rule = [
            'username'=>'required|between:5,12',
            'password'=>'required|between:6,18'
        ];

        $mess = [
            'username.required'=>'用户名必须输入',
            'username.between'=>'用户名的长度在5-12位之间',
            'password.required'=>'密码必须输入',
            'password.required'=>'密码的长度在6-18位之间',
        ];
        $validator = Validator::make($input, $rule,$mess);
//        如果验证失败
        if($validator->fails()){
            return back()
                ->withErrors($validator)
                ->withInput();
        }
//      3 验证 用户名 密码  验证码是否输入正确   逻辑验证
       $user =  User::where('user_name',$input['username'])->first();
        if(empty($user)){
            return back()->with('errors','此用户不存在，请先注册');
        }
//       dd($user->user_pass) ;

        if(Crypt::decrypt($user->user_pass) != trim($input['password'])){
            return back()->with('errors','密码不正确');
        }

//        if(!Hash::check($input['password'],$user->user_pass)){
//            return back()->with('errors','密码不正确');
//        }

        if($input['code'] != session('code')){
            return back()->with('errors','验证码不正确');
        }
//        如果登录成功，将用户信息保存如session中，表示用户已经登录
        session(['user'=>$user]);
       // Session::put('user',$user);
//      4 如果正确跳转到后台首页 ，如果不正确返回
        return redirect('admin/index');

    }
//    生成验证码
    public function code()
    {
        $code = new Code();
        $code->make();
    }

    public function test()
    {
//        echo app_path();
//        echo public_path();
//        echo base_path();
//        echo storage_path();
        dd($_SERVER);
    }

    // 验证码生成
    public function captcha($tmp)
    {

        $phrase = new PhraseBuilder;
        // 设置验证码位数
        $code = $phrase->build(4);
        // 生成验证码图片的Builder对象，配置相应属性
        $builder = new CaptchaBuilder($code, $phrase);
        // 设置背景颜色
        $builder->setBackgroundColor(220, 210, 230);
        $builder->setMaxAngle(25);
        $builder->setMaxBehindLines(0);
        $builder->setMaxFrontLines(0);
        // 可以设置图片宽高及字体
        $builder->build($width = 100, $height = 40, $font = null);
        // 获取验证码的内容
        $phrase = $builder->getPhrase();
        // 把内容存入session
        \Session::flash('code', $phrase);
        // 生成图片
        header("Cache-Control: no-cache, must-revalidate");
        header("Content-Type:image/jpeg");
        $builder->output();
    }


    public function secret()
    {
        $str = '123456';
        //echo md5('zhangsan'.$str);
//        Crypt加密
       echo  Crypt::encrypt($str);
//        Crypt解密
      // echo  Crypt::decrypt('eyJpdiI6IlwvOGJraW5WeDM5K0czM2d3dmdKN2xRPT0iLCJ2YWx1ZSI6ImxkYWFGYk5CWXhMYlRsVzdjXC9ESU9BPT0iLCJtYWMiOiIzNGEyMjc0NDlhZWI4ZGI1M2Q3OTc5Zjk4YjNkMzI4YTM1OGE2NzA3MWIzOGVhNjRkYmJiNzc4NTM5NWU4ZWEwIn0');

       //echo  Hash::make($str);
    }
}
